SQL の略史
SQL の略史
1969 年、IBM のリサーチサイエンティストだった Edgar F. Codd がリレーショナルデータベースモデルを考案
1970 年に論文発表
それを受けて、大学や研究機関がリレーショナルモデルをサポートするデータベースシステムのベースとして使用できる言語の開発を開始
IBM の Santa Teresa Research Laboratory でも研究が行われた
System/R というプロジェクト
1974 年から 1975 年の最初の取り組みにより、リレーショナルデータベースの試作品が作られた
1974 年、Donald Chamberlin らにより SEQUEL (Structured English Query Language) が開発
1976 年から 1977 年にかけて SEQUEL/2 に改訂
法的な問題により、SQL に改名 (Structured Query Language または SQL Query Language)
1977 年、SQL に基づく新しいリレーショナルデータベース製品を構築するための Relational Software, Inc. 設立
その製品は Oracle と名づけられた
Relational Software, Inc. は、その後 Oracle Corporation に改名
同じころ、カリフォルニア州立大学バークレー校でも、リレーショナルデータベース技術の研究
Ingres というリレーショナルデータベースのプロトタイプ
QUEL (Query Language) というデータベース言語が含まれていた
SQL が標準として台頭しつつあったので、最終的には SQL ベースに
1980 年には何人かの教授がバークレー校を去り、Relational Technology, Inc. を設立
1981 年には Ingres の最初の製品バージョンが発表
IBM は 1981 年に SQL/Data System (SQL/DS) という RDBMS 製品を発表
1983 年には Database 2 (DB2) という RDBMS 製品を発表
様々な製品が開発される中、コミュニティは SQL の標準化で揺れ動いていた
標準化について意見の一致はなかなかなく、各ベンダーは引き続き開発を続けていた
やがて、非公式な標準が出現 (様々な SQL 方言の間で類似しているものがカバーされている程度のもの)
SQL/86 の策定
1982 年、公式規格の必要性の高まりを受けて、ANSI (American National Standards Institute) が動いた
ANSI X3.135-1986 (Database Language SQL)として承認、1986 年に SQL/86 として一般に知られるように
ISO (International Organization for Standardization) も、1987 年に ANSI SQL/86 と完全に対応する国際規格 ISO 9075:1987 (Database Language SQL) を公布
それ以来、どちらの規格も単に 「SQL/86」 と呼ばれることが多い
SQL/89 の策定
SQL/86 は、SQL の冗長性や特定の関係演算子に未対応な点、参照整合性の欠陥などの問題があり、批判を浴びた
それらを受けて改訂作業が行われた (参照整合性が重視された)
ISO は 1989 年の中頃に ISO 9075:1989 (Database Language SQL with Integrity Enhancement) を公布
ANSI は同じ年の後半に X3.135-1989 (Database Language SQL with Integrity Enhancement) を採択
SQL/86 も SQL/89 も、既存製品の最小公倍数的 (nobuoka.icon 最大公約数じゃないのかな?) な規格で、基本的な機能が欠けていた
データベースの変更の方法がないなど
ANSI と ISO は、SQL を完全で堅牢な言語にすべく、抜本的な改定作業を実施 : SQL/92
X.135-1992 と ISO/IEC 9075:1992
1997 年、ANSI の X3 機関 は NCITS (National Committee for Information Technology Standards) に改称
SQL 規格を担当する技術委員会は ANSI NCITS-H2 と呼ばれるように
SQL 規格は急速に複雑化 → SQL3 への取り組みを開始していた ANSI と ISO の標準化委員会は、規格を 12 のパートと 1 つの補遺に分割することで合意
1997 年以降、さらに 2 つのパートが追加
参考文献
Effective SQL